import { defineStore } from 'pinia'
import { addCart, getCartInfo, changeItemNum, removeCatItem, changeItemSelected } from '@a/cart'
import { showSuccessToast } from 'vant'
import type { Item } from '@/types/homeType'
const useCartStore = defineStore('cart', {
  state: () => ({
    // 购物车中所有的商品
    items: [],
    // 所有商品总价格
    price: 0,
    // 所有商品总数量
    number: 0
  }),
  actions: {
    initCart({ items, number, price }: any) {
      this.items = items
      this.number = number
      this.price = price
    },
    // 删除商品
    delItem(params: { key: string }) {
      removeCatItem(params).then((res) => {
        if (res.data.code === 0) {
          showSuccessToast('商品删除成功')
          this.initCart(res.data.data)
        }
        if (res.data.code === 700) {
          // 购物车数据删除完了
          showSuccessToast('购物车已经没商品,请添加')
          this.items = []
          this.price = 0;
          this.number = 0;
        }
      })
    },
    // 改变商品选中状态
    changeItemSelected(params: { key: string; selected: boolean }) {
      changeItemSelected(params).then((res) => {
        if (res.data.code === 0) {
          showSuccessToast('选中状态修改成功')
          this.initCart(res.data.data)
        }
      })
    },
    // 增加购物车商品购买数量
    addItemNum(params: { key: string; number: number }) {
      changeItemNum(params).then((res) => {
        if (res.data.code === 0) {
          showSuccessToast('数量修改成功')
          this.initCart(res.data.data)
        }
      })
    },
    // 加入购物车
    addCart(params: { goodsId: number; number: number }) {
      addCart(params).then((res) => {
        if (res.data.code === 0) {
          showSuccessToast('加入购物车成功')
          this.initCart(res.data.data)
        }
      })
    },
    // 获取购物车数据
    getCartInfo(params = {}) {
      getCartInfo().then((res) => {
        if (res.data.code === 0) {
          this.initCart(res.data.data)
        }
      })
    }
  },
  persist: true
})

export default useCartStore
